This invention relates generally to digital communications and, in particular, to multi-data rate digital communication systems.
A voice and data communications system of particular interest herein uses a code. division, multiple access (CDMA) technique such as one originally defined by the EIA Interim Standard IS-95A, and in later revisions thereof and enhancements thereto. This CDMA system is based on a digital spread-spectrum technology which transmits multiple, independent user signals across a single 1.25 MHz segment of radio spectrum. In CDMA, each user signal includes a different orthogonal code and a pseudo-random binary sequence that modulates a carrier, spreading the spectrum of the waveform, and thus allowing a large number of user signals to share the same frequency spectrum. The user signals are separated in the receiver with a correlator which allows only the signal energy from the selected orthogonal code to be de-spread. The other users signals, whose codes do not match, are not de-spread and, as such, contribute only to noise and thus represent a self-interference generated by the system. The SNR of the system is determined by the ratio of desired signal power to the sum of the power of all interfering signals, enhanced by the system processing gain or the spread bandwidth to the baseband data rate.
The CDMA system as defined in IS-95A uses a code excited linear prediction (CELP)-based variable rate voice coding algorithm in which the data rate can change dynamically on a frame by frame basis as a function of the speech pattern (voice activity). The Traffic Channel frames can be transmitted at a data rate within one of two different rate sets, for example a full, {fraction (1/2, 1/4)} or xe2x85x9 rate (9600, 4800, 2400 and 1200 bps, respectively, for rate set 1 (RS1), or 14400, 7200, 3600 and 1800 bps, respectively, for rate set 2 (RS2)). With each lower data rate, the transmitted power (Es) is lowered proportionally, thus enabling an increase in the number of user signals in the channel.
Since the data rate is not known a priori to the receiver, the conventional decoder, such as a well-known Viterbi type of decoder, performs sequential decoding of all possible rates and then determines the rate of the current data frame. In addition to decoding the block encoded, variable rate Traffic Channel, the Viterbi decoder performs decoding of other channels, such as (in IS-95) a continuously encoded Sync Channel with a fixed rate of 1200 bps, and a Paging Channel with a rate of 9600 or 4800 bps. A 20 ms Traffic Channel frame thus contains 192, 96, 48 or 24 data bits for rates 1, {fraction (1/2, 1/4)} and xe2x85x9, respectively, when using RS1, or 288, 144, 72 or 36 bits for rates 1, {fraction (1/2, 1/4)} and xe2x85x9, respectively, when using RS2.
Prior to convolutional encoding, the data bits for rate 1 and rate xc2xd are encoded with a CRC polynomial and (for RS1) the 12 and 8 bit (respectively) CRC fields are appended to the data bits. However, the xc2xc and the xe2x85x9 rates are not protected by the CRC. For RS2 there are 12, 10, 8 and 6-bit CRCs for use from full rate down to xe2x85x9 rate. 
Each Traffic Channel frame is terminated with eight tail bits, which forces the Viterbi decoder to a known state. The 80 ms Sync Channel is continuously encoded and contains three 26.6 ms. frames, each containing 32 data bits.
If an error occurs in the associated CRC field, the received information is of little value in the rate determination process. There are other criteria which may be used in performing the rate determination: SER (Symbol Error Rate), and the size of the Viterbi-determined Cumulative Metric for the ML (Most Likely) path. However, in any practical system the use of these two parameters can be unreliable, since the first parameter varies largely as a function of SNR (Signal-to-Noise Ratio), while the second parameter is typically distorted by a scaling of the ML path Cumulative Metrics during the decoding process.
In commonly assigned U.S. Pat. No. 5,796,757, xe2x80x9cMethods and Apparatus for Performing Rate Determination with a Variable Rate Viterbi Decoderxe2x80x9d, S. Czaja, issued Aug. 18, 1998, there is described a technique for determining a data rate of a received signal. The rate determination uses a decision tree approach where hypothesized rates are tested successively. The data used are the Cumulative Metrics for the four rates and the CRC checks of the different rates, when available.
Reference can also be had to a submission to the Telecommunications Industry Association (TIA) entitled xe2x80x9cProposed Walsh Cover to Improve Rate Determination on the F-FCH and R-FCHxe2x80x9d, TR45.5.4/98.05.11., Vancouver, BC, May 11, 1998. The basic proposal of this document is to replace symbol repetition used for the lower data rates with orthogonal Walsh sequences, thereby reducing the frame energy for an incorrect rate hypothesis.
It is a first object and advantage of this invention to provide an improved rate determination technique for use when receiving data from a communications channel.
It is another object and advantage of this invention to provide an improved rate determination technique for use when receiving data from a radio communications channel such as, but not limited to, a code division multiple access radio channel.
It is a further object and advantage of this invention to provide a radiotelephone having a receiver and an improved rate determination technique for use when receiving data from a radio communications channel.
The foregoing and other problems are overcome and the objects and advantages are realized by methods and apparatus in accordance with embodiments of this invention.
In a first aspect this invention provides a method and apparatus for determining a data rate of a received encoded signal. The method includes steps of (a) decoding a signal received from a communications channel to extract data therefrom, the data being received at one of a plurality of rates and decoded at each of the plurality of rates for generating a Cumulative Metric for each of the plurality of rates; (b) modifying the Cumulative Metrics to orthogonalize the plurality of rates; and (c) determining the correct received rate from the modified Cumulative Metrics.
In a further aspect this invention provides a method that includes steps of (a) decoding a signal received from a communications channel to extract data therefrom, the data being received at one of n rates and the signal being decoded at each of the n rates for generating n Cumulative Metrics; (b) defining a matrix M composed of n mean vectors derived from the n Cumulative Metrics; (c) orthogonalizing the n rates by inverting the matrix M and multiplying with an observable vector of Cumulative Metrics to obtain a discriminant vector; and (d) determining the correct rate from the discriminant vector as the row number having a maximum value.
In one embodiment the step of defining includes a step of deriving the n mean vectors by a step of averaging observable vectors over a plurality of frames and then normalizing. In another embodiment the step of defining includes steps of ((e) deriving the n mean vectors by a step of computing a covariance matrix over a plurality of frames; (f) performing an eigenvalue-eigenvector decomposition; (g) normalizing the eigenvectors norm; and (h) obtaining the desired vector from the signal space eigenvector (as the eigenvector which has a largest eigenvalue).
The matrix Mxe2x88x921 can be computed in advance and stored. If computed in advance, the matrix Mxe2x88x921 is computed assuming a predetermined signal-to-noise ratio that corresponds to a predetermined frame error rate.
The method includes a further step of testing a data integrity value, typically a CRC, associated with the received data.
Further in accordance with the teachings of this invention, the step of decoding includes a preliminary step of scaling soft data with at least one of a fixed or adaptive scaling factor, and the generation of the n Cumulative Metrics includes a subsequent step of scaling the Cumulative Metrics so as to undo the adaptive scaling.
The step of decoding may decode an entire frame of soft data, or may decode less than an entire frame of soft data to generate the n Cumulative Metrics.